import { createApp } from 'vue'
import axios from 'axios'
import store from './store'
import router from './router'

import App from './App.vue'

import "easymde/dist/easymde.min.css"

// axios.defaults.baseURL = 'http://apis.imooc.com/api/'
// axios.interceptors.request.use(config => {
//   config.params = { ...config.params, icode: '8BE6586D40F9D437' }
//   return config
// })
// axios.get('/columns').then(resp => {
//   console.log(resp.data);
// })

// 替换 baseURL
axios.defaults.baseURL = 'http://apis.imooc.com/api/'
// 下面的 icode 值是从慕课网获取的 token 值，可以在课程右侧的项目接口校验码找到
axios.interceptors.request.use(config => {
  // ... 其他代码
  // get 请求，添加到 url 中
  config.params = { ...config.params, icode: '971589FCE0EC8514' }
  // 其他请求，添加到 body 中
  // 如果是上传文件，添加到 FormData 中
  if (config.data instanceof FormData) {
    config.data.append('icode', '971589FCE0EC8514')
  } else {
    // 普通的 body 对象，添加到 data 中
    config.data = { ...config.data, icode: '971589FCE0EC8514' }
  }
  return config
})

// 请求拦截器:每次请求前都设置Loading
axios.interceptors.request.use(config => {
  store.commit('setLoading', true)
  store.commit('setError', { status: false, message: '' })
  return config
})

// 请求完成后
axios.interceptors.response.use(config => {
  setTimeout(() => {
    store.commit('setLoading', false)
  }, 500);
  return config
}, e => {
  console.log(e.response);
  const { error } = e.response.data
  store.commit('setError', { status: true, message: error })
  store.commit('setLoading', false)
  return Promise.reject(error)
})
const app = createApp(App)
app.use(router)
app.use(store)
app.mount('#app')
